#include <stdio.h>
#include <stdlib.h>
#include "matriz.h"
#include "grafo.h"

void novoGrafo(Grafo* grafo,int vertices,int arestas){
    //printf("Novo Grafo - arestas:%d, vertices:%d\n", arestas,vertices);
    grafo->numArestas = arestas;
    grafo->numVertices = vertices;
    grafo->grafo = (Matriz*) malloc (sizeof(Matriz));
    novaMatriz(grafo->grafo, vertices, vertices);
    grafo->volPedidos = (int*) malloc(vertices*sizeof(int));
}

void contaArestas(Grafo* grafo){
    int aux, aux1, numArestas=0;

    for(aux=0 ; aux < grafo->numVertices ; aux++){
        for(aux1=aux ; aux1 < grafo->numVertices ; aux1++){
            if(grafo->grafo->matriz[aux][aux1] > 0){
                numArestas+=1;
            }
        }
    }
    grafo->numArestas = numArestas;
}

void liberaGrafo (Grafo* grafo){
    liberaMatriz(grafo->grafo);
    free(grafo->grafo);
    free(grafo->volPedidos);
    free(grafo);
    return;
}

void imprimeGrafo(Grafo* grafo){

    int aux;

    printf("Numero de vertices: %d\n", grafo->numVertices);
    printf("Numero de arestas: %d\n", grafo->numArestas);

    imprimeMatriz(grafo->grafo);

    printf("Volume de pedidos: ");
    for(aux = 0;aux<grafo->numVertices;aux++){
        printf("%d ", grafo->volPedidos[aux]);
    }
}

